package com.ygxsk.carhome.retrofit;

import android.app.Activity;
import android.content.Context;

import java.util.HashMap;

/**
 * 市场API请求监听器
 *
 * @author andrew.wang
 * @date 2010-10-28
 * @since Version 0.4.0
 */
public interface ApiRequestListener<O> {

//    /**
//     * 不同接口可能在开始处理success和error的时候有准备工作要做
//     */
    //void onStart(int method);
    //void onSuccess(int method, Object response);
    //void onSuccess(int method, Object response);

    //2020-12-25 09:59:48 日志上报：
       /*CommUtils.addLog(_activity,//
            Constants.getInstance().saveUpkeepResult(),//
            requestMethod,//RequestMethod.POST.toString()//请求的方式
            JSON.toJSONString(""),//上传的参数。
            message);*/
    //错误的内容json 在resoponse之中，包含code和message

    //2022-11-23 20:43:35 因为线程调度的问题导致我界面无端的崩溃，所以去掉，因为不在同一个线程
//    public abstract void beforeSuccessDataDoSomething(int what_method, String serverCode, String serverMessage);

    /**
     * 做一些非20000的需要用户自己处理的东西
     */
    public abstract void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage);

    //===============================================================================================================================================
    //2022-10-25 15:58:41 新增的；
    public abstract void addLogInApiRequestListener(Context _context,//上下文对象
                                                    String _interfaceAddress,//接口地址内容
                                                    String _requestMethod,//人为的手动传入是get还是post
                                                    HashMap<String, Object> _requestParamObject, // O responseSuccedDataParam, //备注：这个暂时没用到。
                                                    String _errorMessageMy);//自定义的报错日志信息
    //===============================================================================================================================================

    /**
     * 服务器返回来的约定好的编码，在做json转换时的异常,在JsonConverter之中传递过来
     * 包括
     */
    public abstract void onErrorServerNotSuccessDataResponse(int method, boolean isShowToastToUser, Activity activity, String statusCode, String errorMessage);

    /**
     * 做报错之后的页面个性化的处理
     */
//    public abstract void notSuccessDataResponseDoSomething(int method, String statusCode, String errorMessage);

    /**
     * 请求服务器发生的异常
     */
    public abstract void onExceptionRequest(int method, Activity activity, Exception exception);


    /**
     * 服务器响应数据返回来的数据异常，
     */
    public abstract void onExceptionResponse(int method, int flagShowPageOrToast, Activity activity, Exception exception);


}
